package com.chaos.order.api.dto.pay.response;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Map;

/**
 * @author: craywen
 * @date: 2021-05-17 16:07
 * @desc:
 */
@Data
@ApiModel("订单支付返回实体类")
public class PayResponse implements Serializable {

    private static final long serialVersionUID = 1L;

/*    @ApiModelProperty("微信支付主动查询返回参数(单位分)")
    private BigDecimal totalFee;*/

    @ApiModelProperty("支付宝支付主动查询返回参数(单位元),微信单位(分)")
    private BigDecimal totalAmount;
    /**
     * 订单状态
     */
    @ApiModelProperty("订单状态(0:未支付 1:待支付 2:支付成功 3:支付失败  4:退款中  5:退款成功 6:退款失败  7:超时取消)")
    private Integer payStatus;

    @ApiModelProperty("第三方请求单号")
    private String requestOrderSn;

    @ApiModelProperty("支付信息")
    private Map<String, Object> payInfo;

    private Long orderId;
    /**
     * 收银台URL
     */
    private String caskDeskUrl;
    /**
     * 第三方生成支付单时间
     */
//    @ApiModelProperty("第三方生成支付单时间")
//    private long createPayTime;
    /**
     * 订单支付超时时间
     */
//    @ApiModelProperty("订单支付超时时间")
//    private long timeoutPayTime;
    /**
     * 订单成功时间
     */
//    @ApiModelProperty("订单成功时间")
//    private long paySuccessTime;
    /**
     * 第三方返回成功/失败信息描述
     */
    @ApiModelProperty("第三方返回成功/失败信息描述")
    private String thirdRemark;
    /**
     * 支付平台返回的支付交易流水号trade_no
     */
    @ApiModelProperty("支付平台返回的支付交易流水号trade_no")
    private String thirdTradeNo;

    /**
     * 随机字符串（APP）
     */
    @ApiModelProperty("随机字符串（APP）")
    private String nonceStr;
    /**
     * 时间戳（APP）
     */
    @ApiModelProperty("时间戳（APP）")
    private String timeStamp;
    /**
     * 签名（APP）
     */
    @ApiModelProperty("签名（APP）")
    private String sign;
    /**
     * 预支付交易会话标识（APP）
     */
    @ApiModelProperty("预支付交易会话标识（APP）")
    private String prepayId;
    /**
     * 子商户号（APP）
     */
    @ApiModelProperty("子商户号（APP）")
    private String partnerId;
    /**
     * 公众号id（APP）
     */
    @ApiModelProperty("公众号id（APP）")
    private String appId;

    @ApiModelProperty("签名方式")
    private String signType;

    @ApiModelProperty("值(预支付交易会话标识)")
    private String packageValue;

    private String attach;

}
